<!DOCTYPE html>
<html>

<head><meta name="generator" content="Hexo 3.8.0">
  
  <title>hexo 迁移 - 绪锋</title>
  <meta charset="UTF-8">
  <meta name="description" content="小镇青年,心怀远方">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  

    <!-- Site Verification -->
    <meta name="baidu-site-verification" content="cXpXJOvmtY">

  <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
  <meta name="description" content="好久都没有更新博客了，因为数据迁移的关系，很多东西需要重新部署。 在重新部署的过程中遇到了很多坑，如果你的源代码迁移到了一台新的设备上。你需要准备一些事情。">
<meta name="keywords" content="hexo">
<meta property="og:type" content="article">
<meta property="og:title" content="hexo 迁移">
<meta property="og:url" content="https://mraing.github.io/2021/03/29/Hexo 迁移/index.html">
<meta property="og:site_name" content="绪锋">
<meta property="og:description" content="好久都没有更新博客了，因为数据迁移的关系，很多东西需要重新部署。 在重新部署的过程中遇到了很多坑，如果你的源代码迁移到了一台新的设备上。你需要准备一些事情。">
<meta property="og:locale" content="zh-CN">
<meta property="og:image" content="http://images.leegeing.cn/mweb/16170031950727.jpg">
<meta property="og:updated_time" content="2021-03-29T08:26:32.131Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="hexo 迁移">
<meta name="twitter:description" content="好久都没有更新博客了，因为数据迁移的关系，很多东西需要重新部署。 在重新部署的过程中遇到了很多坑，如果你的源代码迁移到了一台新的设备上。你需要准备一些事情。">
<meta name="twitter:image" content="http://images.leegeing.cn/mweb/16170031950727.jpg">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/mdui@0.4.3/dist/css/mdui.min.css">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@9.15.8/styles/atom-one-dark.css">
   
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css">
  
  
  <link rel="stylesheet" href="//at.alicdn.com/t/font_1038733_0xvrvpg9c0r.css">
  <link rel="stylesheet" href="/css/style.css?v=1627371788727">
</head>

<body class="mdui-drawer-body-left">
  
  <div id="nexmoe-background">
    <div class="nexmoe-bg" style="background-image: url(https://i.loli.net/2019/01/13/5c3aec85a4343.jpg)"></div>
    <div class="mdui-appbar mdui-shadow-0">
      <div class="mdui-toolbar">
        <a mdui-drawer="{target: '#drawer', swipe: true}" title="menu" class="mdui-btn mdui-btn-icon"><i class="mdui-icon material-icons">menu</i></a>
        <div class="mdui-toolbar-spacer"></div>
        <!--<a href="javascript:;" class="mdui-btn mdui-btn-icon"><i class="mdui-icon material-icons">search</i></a>-->
        <a href="/" title="LeeGeing" class="mdui-btn mdui-btn-icon"><img src="/images/avatar.jpg"></a>
       </div>
    </div>
  </div>
  <div id="nexmoe-header">
      <div class="nexmoe-drawer mdui-drawer" id="drawer">
    <div class="nexmoe-avatar mdui-ripple">
        <a href="/" title="LeeGeing">
            <img src="/images/avatar.jpg" alt="LeeGeing">
        </a>
    </div>
    <div class="nexmoe-count">
        <div><span>文章</span>82</div>
        <div><span>标签</span>28</div>
        <div><span>分类</span>8</div>
    </div>
    <ul class="nexmoe-list mdui-list" mdui-collapse="{accordion: true}">
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/" title="回到首页">
            <i class="mdui-list-item-icon nexmoefont icon-home"></i>
            <div class="mdui-list-item-content">
                回到首页
            </div>
        </a>
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/about.html" title="关于博客">
            <i class="mdui-list-item-icon nexmoefont icon-info-circle"></i>
            <div class="mdui-list-item-content">
                关于博客
            </div>
        </a>
        
        <a class="nexmoe-list-item mdui-list-item mdui-ripple" href="/PY.html" title="我的朋友">
            <i class="mdui-list-item-icon nexmoefont icon-unorderedlist"></i>
            <div class="mdui-list-item-content">
                我的朋友
            </div>
        </a>
        
    </ul>
    <aside id="nexmoe-sidebar">
  
  <div class="nexmoe-widget-wrap">
    <h3 class="nexmoe-widget-title">社交按钮</h3>
    <div class="nexmoe-widget nexmoe-social">
        <a class="mdui-ripple" href="https://space.bilibili.com/11147795" target="_blank" mdui-tooltip="{content: '哔哩哔哩'}" style="color: rgb(231, 106, 141);background-color: rgba(231, 106, 141, .15);">
            <i class="nexmoefont icon-bilibili"></i>
        </a><a class="mdui-ripple" href="https://github.com/mraing/" target="_blank" mdui-tooltip="{content: 'GitHub'}" style="color: rgb(25, 23, 23);background-color: rgba(25, 23, 23, .15);">
            <i class="nexmoefont icon-github"></i>
        </a>
    </div>
</div>
  
  
  <div class="nexmoe-widget-wrap">
    <h3 class="nexmoe-widget-title">文章分类</h3>
    <div class="nexmoe-widget">

      <ul class="category-list">

        


        

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/React/">React</a>
          <span class="category-list-count">7</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/TypeScript/">TypeScript</a>
          <span class="category-list-count">5</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/Vue/">Vue</a>
          <span class="category-list-count">33</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/前端/">前端</a>
          <span class="category-list-count">19</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/博客/">博客</a>
          <span class="category-list-count">3</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/工具/">工具</a>
          <span class="category-list-count">6</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/碎碎念/">碎碎念</a>
          <span class="category-list-count">4</span>
        </li>

        

        <li class="category-list-item">
          <a class="category-list-link" href="/categories/软件设计师/">软件设计师</a>
          <span class="category-list-count">5</span>
        </li>

        
      </ul>

    </div>
  </div>


  
  
  <div class="nexmoe-widget-wrap">
    <h3 class="nexmoe-widget-title">标签云</h3>
    <div id="randomtagcloud" class="nexmoe-widget tagcloud">
      <a href="/tags/Hbuilder/" style="font-size: 10px;">Hbuilder</a> <a href="/tags/Homebrew/" style="font-size: 10px;">Homebrew</a> <a href="/tags/JS/" style="font-size: 14px;">JS</a> <a href="/tags/JSX/" style="font-size: 10px;">JSX</a> <a href="/tags/Mint-UI/" style="font-size: 10px;">Mint-UI</a> <a href="/tags/Nginx/" style="font-size: 10px;">Nginx</a> <a href="/tags/Ngnix/" style="font-size: 10px;">Ngnix</a> <a href="/tags/OpenInTerminal/" style="font-size: 10px;">OpenInTerminal</a> <a href="/tags/Sass/" style="font-size: 14px;">Sass</a> <a href="/tags/Vuex/" style="font-size: 10px;">Vuex</a> <a href="/tags/antd/" style="font-size: 10px;">antd</a> <a href="/tags/css/" style="font-size: 10px;">css</a> <a href="/tags/docsify/" style="font-size: 10px;">docsify</a> <a href="/tags/git/" style="font-size: 12px;">git</a> <a href="/tags/hexo/" style="font-size: 12px;">hexo</a> <a href="/tags/mui/" style="font-size: 18px;">mui</a> <a href="/tags/react/" style="font-size: 14px;">react</a> <a href="/tags/redux/" style="font-size: 10px;">redux</a> <a href="/tags/swiper/" style="font-size: 10px;">swiper</a> <a href="/tags/typescript/" style="font-size: 16px;">typescript</a> <a href="/tags/vue/" style="font-size: 20px;">vue</a> <a href="/tags/vux/" style="font-size: 10px;">vux</a> <a href="/tags/她/" style="font-size: 10px;">她</a> <a href="/tags/感悟/" style="font-size: 12px;">感悟</a> <a href="/tags/日记/" style="font-size: 10px;">日记</a> <a href="/tags/消息推送/" style="font-size: 10px;">消息推送</a> <a href="/tags/知识点/" style="font-size: 10px;">知识点</a> <a href="/tags/软考笔记/" style="font-size: 16px;">软考笔记</a>
    </div>
    
  </div>

  
  
  <div class="nexmoe-widget-wrap">
    <h3 class="nexmoe-widget-title">文章归档</h3>
    <div class="nexmoe-widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2021/07/">七月 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2021/03/">三月 2021</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/10/">十月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/09/">九月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/07/">七月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/06/">六月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/04/">四月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/01/">一月 2020</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/12/">十二月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/09/">九月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/08/">八月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/07/">七月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/06/">六月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/05/">五月 2019</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/04/">四月 2019</a></li></ul>
    </div>
  </div>


  
</aside>
    <!-- <div class="nexmoe-copyright">
        &copy; 2021 LeeGeing
        Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
        & <a href="https://nexmoe.com/hexo-theme-nexmoe.html" target="_blank">Nexmoe</a>
    </div> -->
    <div class="nexmoe-copyright">
        <a href="http://beian.miit.gov.cn/state/outPortal/loginPortal.action" target="_blank">湘ICP备16019481号</a>
        <!-- & <a href="https://nexmoe.com/hexo-theme-nexmoe.html" target="_blank">Nexmoe</a> -->
    </div>
</div><!-- .nexmoe-drawer -->
  </div>
  <div id="nexmoe-content">
    <div class="nexmoe-primary">
        <div class="nexmoe-post">
    <div class="nexmoe-post-cover"> 
        
            <img src="https://i.loli.net/2019/01/13/5c3aec85a4343.jpg">
        
        <h1>hexo 迁移</h1>
    </div>
  <div class="nexmoe-post-meta">
    <a><i class="nexmoefont icon-calendar-fill"></i>2021年03月29日</a>
    <a><i class="nexmoefont icon-areachart"></i>1.2k 字</a>
    <a><i class="nexmoefont icon-time-circle-fill"></i>大概 5 分钟</a>
    
      <a class="nexmoefont icon-appstore-fill -link" href="/categories/博客/">博客</a>
    
    
      <a class="nexmoefont icon-tag-fill -link" href="/tags/hexo/">hexo</a>
    
  </div>
  <article>
    <p>好久都没有更新博客了，因为数据迁移的关系，很多东西需要重新部署。</p>
<p>在重新部署的过程中遇到了很多坑，如果你的源代码迁移到了一台新的设备上。你需要准备一些事情。</p>
<a id="more"></a>
<h2 id="添加-SSH密钥"><a href="#添加-SSH密钥" class="headerlink" title="添加 SSH密钥"></a>添加 SSH密钥</h2><p>添加git的SSH密钥，会让你事半功倍。</p>
<h4 id="1-查看是否已经配置"><a href="#1-查看是否已经配置" class="headerlink" title="1.查看是否已经配置"></a>1.查看是否已经配置</h4><p>首先确认你本地是否已经生成了SSH密钥。我不太习惯在终端打开文件，所以你可以像我一样 <code>command+空格</code>，调出全局搜索。</p>
<pre><code>～/.ssh 
</code></pre><p>查看目录下是否有两个文件 <code>id_rsa</code>、<code>id_rsa.pub</code>，如果没有的话，则进行下一步，如果有的话直接看第三步。</p>
<h4 id="2-重新配置"><a href="#2-重新配置" class="headerlink" title="2. 重新配置"></a>2. 重新配置</h4><h5 id="配置账户"><a href="#配置账户" class="headerlink" title="配置账户"></a>配置账户</h5><pre><code class="bash"># 用户名，建议拼音或英文
git config --global user.name &quot;account name&quot;
# 邮箱地址
git config --global user.email &quot;account email&quot;
</code></pre>
<h5 id="生成秘钥"><a href="#生成秘钥" class="headerlink" title="生成秘钥"></a>生成秘钥</h5><pre><code class="bash"># 上面配置的邮箱地址
ssh -keygen -t rsa -C &quot;account email&quot;
</code></pre>
<p>然后一路回车，最后出现一个气泡图，就表示生成成功了。<br>回到第一步，打开 <code>./ssh</code> 文件夹，用编辑器查看刚刚生成的 <code>id_rsa.pub</code>。</p>
<p>复制里面的内容，等会我们会用到的。</p>
<h4 id="3-添加密钥"><a href="#3-添加密钥" class="headerlink" title="3.添加密钥"></a>3.添加密钥</h4><p>点击进入 <a href="https://github.com/settings/keys" target="_blank" rel="noopener">github 添加 SSH</a> ，新增SSH keys。</p>
<p>title 是keys的名称，由自己自定义。</p>
<p>key 里面的内容就是刚刚我们复制的内容，粘贴进来就可以了。</p>
<p><img src="http://images.leegeing.cn/mweb/16170031950727.jpg" alt></p>
<h2 id="安装hexo"><a href="#安装hexo" class="headerlink" title="安装hexo"></a>安装hexo</h2><p>安装 Hexo 的前提是安装 Node 环境, 如何安装 Node 环境，网上有很多教程，这里就不多说了。</p>
<p>如果在尝试安装 Hexo 的过程中出现 EACCES 权限错误，请遵循 由 <a href="https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally" target="_blank" rel="noopener">npmjs 发布的指导</a>  修复该问题。强烈建议 不要 使用 root、sudo 等方法覆盖权限。</p>
<p>我比较简单粗暴，我直接使用的就是 <code>sudo</code>， 提升权限安装。</p>
<pre><code class="bash">sudo npm install -g hexo-cli
</code></pre>
<p>打开Finder，然后使用<code>command+shift+G</code>，在弹出的目录中填写<code>/usr/local</code>，然后回车打开文件夹。</p>
<p>可以在 <code>/usr/local/lib/node_modules</code> 中看到刚刚安装好的 <code>hexo-cli</code>。</p>
<p>在控制台输出 <code>hexo -v</code>,如果能看到 hexo 版本信息，那就表示安装成功了。</p>
<h2 id="Hexo-问题"><a href="#Hexo-问题" class="headerlink" title="Hexo 问题"></a>Hexo 问题</h2><h4 id="hexo-deployer-git-版本问题"><a href="#hexo-deployer-git-版本问题" class="headerlink" title="hexo-deployer-git 版本问题"></a>hexo-deployer-git 版本问题</h4><p>老规矩，hexo 一键三连</p>
<pre><code class="bash"># 清除 hexo 缓存
hexo clean

# 生成静态文件
hexo g

# 部署hexo
hexo d
</code></pre>
<p>在部署阶段，可能会有错误git提交错误的问题，极大可能是 <code>hexo-deployer-git</code> 版本的问题。</p>
<pre><code class="bash"># 卸载
npm un hexo-deployer-git

# 安装
npm i hexo-deployer-git@3.0.0
</code></pre>
<p>如果还有问题，或许你开了vpn 代理，把代理关掉重新来一次就好。这时候我们差不多了是接近成功的状态了。如果没有 <strong>hexo 部署后打开是白屏</strong>的问题，那么你已经成功了。</p>
<h4 id="hexo-部署后是白屏"><a href="#hexo-部署后是白屏" class="headerlink" title="hexo 部署后是白屏"></a>hexo 部署后是白屏</h4><p>我们本地预览hexo没有问题，但是hexo部署发布后，我们打开却是白屏，搜遍全网，怀疑是 <code>node 版本</code> 的问题。</p>
<p>在控制台输出 <code>node -v</code> 查看当前安装的node版本。我目前本机是 <code>14.16.0</code>， 显然这个版本对于hexo来说还是高了一些，我们需要降级node版本。</p>
<p>我经过测试 <code>12.21.0</code> 这个版本是可以正常部署发布的，大家可以以这个版本为准。</p>
<h2 id="Mac-切换-Node-版本"><a href="#Mac-切换-Node-版本" class="headerlink" title="Mac 切换 Node 版本"></a>Mac 切换 Node 版本</h2><h4 id="安装-N"><a href="#安装-N" class="headerlink" title="安装 N"></a>安装 N</h4><pre><code class="bash">安装 n
npm install -g n
# 如果不成功,提升权限试一下
sudo npm install -g n
</code></pre>
<h4 id="修改几个本地目录的拥有者"><a href="#修改几个本地目录的拥有者" class="headerlink" title="修改几个本地目录的拥有者"></a>修改几个本地目录的拥有者</h4><pre><code class="bash">sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
</code></pre>
<p>n 会在系统目录下创建一个目录，也需要修改下它的拥有者</p>
<pre><code class="bash">sudo chown -R $(whoami) /usr/local/n
</code></pre>
<p>如果报错了，那么我们可以先手动添加 n 文件夹。</p>
<p>打开Finder，然后使用<code>command+shift+G</code>，在弹出的目录中填写<code>/usr/local</code>，然后回车打开文件夹。</p>
<p>在这个 local 文件夹里面新建一个 名为 <code>n</code> 的文件夹，这一步你可能需要输入密码。</p>
<p>然后再次运行：</p>
<pre><code class="bash">sudo chown -R $(whoami) /usr/local/n
</code></pre>
<h4 id="安装指定版本的node"><a href="#安装指定版本的node" class="headerlink" title="安装指定版本的node"></a>安装指定版本的node</h4><pre><code class="bash"># 下载并安装node 10.16.3
n 10.16.3
# 下载并安装node 最新版本
n latest
# 下载并安装node 长期稳定维护版
n lts
</code></pre>
<h4 id="切换node版本"><a href="#切换node版本" class="headerlink" title="切换node版本"></a>切换node版本</h4><p>输入 <code>n</code> 查看已缓存的版本，然后上下键选择对应的版本，回车选择就可以了。</p>
<pre><code class="bash"># 列出所有缓存的node版本
n
    node/4.4.4
  ο node/8.11.1
    node/10.16.3
</code></pre>
<p>用 <code>node -v</code> 查看版本是否生效。</p>
<h4 id="删除node版本"><a href="#删除node版本" class="headerlink" title="删除node版本"></a>删除node版本</h4><pre><code class="bash"># 删除指定版本
n rm xxx
# 删除当前版本外的所有版本
n prune
# 卸载当前已安装的node
n uninstall
</code></pre>
<pre><code class="bash"># 查看已下载的node版本列表
n ls
</code></pre>

  </article>
  
    

  
  <section class="nexmoe-comment">
    <script id="dsq-count-scr" src="https://leegeing-cn.disqus.com/count.js" async></script>
<div id="disqus_thread"></div>
<script>
    var disqus_config = function () {
        this.page.url = 'https://mraing.github.io/2021/03/29/Hexo 迁移/'; // Replace PAGE_URL with your page's canonical URL variable
        this.page.identifier = 'https://mraing.github.io/2021/03/29/Hexo 迁移/'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
    };
</script>
<script id="disqus-thread-script">
    (function() { // DON'T EDIT BELOW THIS LINE
        var d = document;
        var s = d.createElement('script');
        s.src = '//leegeing-cn.disqus.com/embed.js';
        s.setAttribute('data-timestamp', + new Date());
        (d.head || d.body).appendChild(s);
    })();
</script>

</section>
</div>
    </div>
  </div>
  <script src="https://cdn.jsdelivr.net/npm/mdui@0.4.3/dist/js/mdui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
 
    <script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script>


 
    <script src="https://cdn.jsdelivr.net/npm/smoothscroll-for-websites@1.4.9/SmoothScroll.min.js"></script>


<script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.15.8/build/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

<script src="/js/app.js?v=1627371788738"></script>
<script src="https://cdn.jsdelivr.net/npm/lazysizes@5.1.0/lazysizes.min.js"></script>


    <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/xtaodada/xtaodada.github.io@0.0.2/copy.js"></script>

  





</body>

</html>
